package org.dromara.llm.service;

import org.dromara.llm.domain.LlmSender;
import org.springframework.ai.chat.model.ChatResponse;
import reactor.core.publisher.Flux;

/**
 * 翻译Service接口
 *
 * @author Miles Meng
 * @date 2025-06-25
 */
public interface IAiChatService {

    String chat(String message);

    Flux<ChatResponse> chatStream(String message);

    /**
     * 通用翻译
     */
    String translate(String message, String sourceLang, String targetLang, String deviceId);

    String chatByTemplate(String message, Long templateId);

    String chatByTemplate(String message, Long templateId, String deviceId);

    String audioRecognition(String id, byte[] message);

    String audioProcessing(String message) throws Exception;

    String generateAudio(String message) throws Exception;

    void saveMessage(String message, String deviceId, LlmSender sender, String audioPath);
}
